<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
  /**
    * showdoc
    * @catalog /公共文件
    * @title 获取编辑器
    * @description 公共方法
    * @param url 必选 string 跳转得url  
    * @param text 可选 string 提示内容  
    * @param type 可选 string 提示类型  
    * @return 直接跳转
    * @remark 
    */
  function get_um($name = 'name',$txt = '',$width = '800px',$height = '240px')
  {
    echo '<link href="/static/um/themes/default/css/umeditor.css" type="text/css" rel="stylesheet">
    <script type="text/javascript" src="/static/um/third-party/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8" src="/static/um/umeditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="/static/um/umeditor.min.js"></script>
    <script type="text/javascript" src="/static/um/lang/zh-cn/zh-cn.js"></script>

    <script type="text/plain" name="'.$name.'" id="'.$name.'" style="width:'.$width.';height:'.$height.';">'.$txt.'</script><script>var '.$name.' = UM.getEditor("'.$name.'");</script>';
    
  }
  /**
    * showdoc
    * @catalog /公共文件
    * @title 页面跳转
    * @description 公共方法
    * @param url 必选 string 跳转得url  
    * @param text 可选 string 提示内容  
    * @param type 可选 string 提示类型  
    * @return 直接跳转
    * @remark 
    */
  function redirect($url = '',$text = '',$type = 'Tmsg')
  {
    if($text){
      $type .= '';
      if($type != 'Tmsg' && $type != 'Cmsg'){
        $is = (int)$type;
        $type = $is ? 'Tmsg' : 'Cmsg';
      }
      \think\facade\Session::set($type,$text);
    }
    echo '<script>window.location.href="'.$url.'";</script>';
  }

  /**
    * showdoc
    * @catalog /公共文件
    * @title 页面返回
    * @description 公共方法
    * @param text 可选 string 提示内容  
    * @param go   可选 int    退回几层页面  
    * @param type 可选 string 提示类型  
    * @return 直接跳转
    * @remark 
    */
  function back($text = '',$go = 1,$type = 'Tmsg',$re = false)
  {
    if($text){
      $type .= '';
      if($type != 'Tmsg' && $type != 'Cmsg'){
        $is = (int)$type;
        $type = $is ? 'Tmsg' : 'Cmsg';
      }
      \think\facade\Session::set($type,$text);
    }

    if($re){
      echo '<script>self.location=document.referrer;</script>';
    }else{
      echo '<script>window.history.go(-'.$go.');</script>';
    }
    die;
  }

  /**
    * showdoc
    * @catalog /公共文件
    * @title 页面提示方法
    * @description 公共方法
    * @param name 可选 string 提示内容  
    * @param is   可选 int    提示类型  
    * @return 直接跳转
    * @remark 
    */
  function msgText($name='',$is = 'Tmsg')
  {

    $mobile = request()->isMobile();

    if($mobile){
        // echo '<script src="/static/ui/layui/layer_mobile/layer.js"></script>';
        echo '<script src="/static/ui/layui/layui.all.js"></script>';
    }else{
        echo '<script src="/static/ui/layui/layui.all.js"></script>';
    }

    if(\think\facade\Session::has('Tmsg')){

        $txt = \think\facade\Session::pull('Tmsg');

        $txt = $name ? $name : $txt;

        if($mobile){
            echo '<script>layer.open({content: "'.$txt.'",btn: ["关闭"],yes: function(index){layer.close(index);}});</script>';
        }else{
            echo '<script>layer.confirm("'.$txt.'", {btn: ["确认"]});</script>';
        }
    }else if(\think\facade\Session::has('Cmsg')){
      $txt = \think\facade\Session::pull('Cmsg');
      $txt = $name ? $name : $txt;
      if($mobile){
        echo '<script>layer.open({content: "'.$txt.'",skin: "msg",time: 3});</script>';
      }else{
        echo '<script>layer.msg("'.$txt.'", {icon: 1});</script>';
      }
    }else if($name){
      if($is){
        if($mobile){
            echo '<script>layer.open({content: "'.$name.'",btn: ["关闭"],yes: function(index){layer.close(index);}});</script>';
        }else{
            echo '<script>layer.confirm("'.$name.'", {btn: ["确认"]});</script>';
        }
      }else{
        if($mobile){
          echo '<script>layer.open({content: "'.$name.'",skin: "msg",time: 3});</script>';
        }else{
          echo '<script>layer.msg("'.$name.'", {icon: 1});</script>';
        }
      }

    }
  }

  /**
    * showdoc
    * @catalog /公共文件
    * @title 主后台系统设置方法
    * @description 公共方法
    * @param text   可选 string 需要获取的配置  
    * @param detext 可选 string 配置文件  
    * @return 直接跳转
    * @remark 
    */
  function get_default($text = '',$detext = 'default')
  {
    if(!file_exists('./web/default/'.$detext.'.php')){
        return '';
    }

    $default = file_get_contents('./web/default/'.$detext.'.php');

    $default = json_decode($default,true);
    if($text){
      if(isset($default[$text])){
        return $default[$text];
      }else{
        return '';
      }
    }else{
      return $default;
    }
    
  }

/**
  * showdoc
  * @catalog /公共文件
  * @title 代理系统设置方法
  * @description 公共方法
  * @param text   可选 string 需要获取的配置  
  * @param detext 可选 string 配置文件  
  * @return 直接跳转
  * @remark 
  */
  function get_system($text = '')
  {
    $info = \think\Db::name('agency_system')->where('agency_system_pid',1)->find();
    if($text){
      if(isset($info[$text])){
        return $info[$text];
      }else{
        return '';
      }
    }else{
      return $info;
    }
    
  }

  function setLog($name = '',$data)
  {
    $file_str = '/web/log/';

    if(!file_exists(".".$file_str)){
      mkdir(".".$file_str);
      chmod(".".$file_str,0777);
    }

    $file_text = "----- ".date('Y-m-d H:i')." <==> {$name} -----\r\n";
    if(is_string($data) || is_int($data)){
      $file_text .= $data."\r\n\r\n";
    }else{
      $file_text .= var_export($data,true)."\r\n\r\n";
    }
    $file_text .= "+-----------------------------------------------------+\r\n\r\n";

    file_put_contents('./web/log/log.php', $file_text,FILE_APPEND);

  }

  function base64_file($pic,$zoom = 1,$wid = 0)
  {
      $file_str = '/web/images/file/';
      $name_file = date('YmdHis').$wid.mt_rand(0,99);

      if(!file_exists(".".$file_str)){
          mkdir(".".$file_str);
      }
      
      $arr['agency_file_keep'] = 1;
      $arr['agency_file_w_id'] = $wid;
      $arr['agency_file_p_id'] = \think\Db::name('agency_file_type')
        ->where('agency_file_type_type',1)
        ->where('agency_file_type_w_id',$wid)
        ->value('id');

      $picre = [];
      if($pic){
        $arrAll = [];
        foreach($pic as $k => $v){
          $pic = explode(',',$v);
          $pic_type = explode('/',explode(';',$pic[0])[0])[1];

          $pic_file = $pic[count($pic)-1];
          $pic_str = $file_str.$name_file.'.'.$pic_type;
          file_put_contents('.'.$pic_str,base64_decode($pic_file));

          if(file_exists(".".$pic_str) && is_file(".".$pic_str)){
              $image = \think\Image::open('.'.$pic_str);
              // 返回图片的宽度
              $arr['agency_file_w'] = $image->width(); 
              // 返回图片的高度
              $arr['agency_file_h'] = $image->height(); 
              // 返回图片的类型
              $arr['agency_file_type'] = $image->type();

              $image->save('.'.$pic_str,$arr['agency_file_type'],$zoom);
              $arr['agency_file_url'] = $name_file.'.'.$pic_type;
          }else{
              $arr['agency_file_url'] = '';
              $arr['agency_file_w'] = '';
              $arr['agency_file_h'] = '';
              $arr['agency_file_type'] = '';
          }

          $cosClient = new \Qcloud\Cos\Client(array('region' => get_default('yun_t_diqu'),'credentials'=> array(
            'secretId'    => get_default('yun_t_appid'),
            'secretKey' =>  get_default('yun_t_key'))));
          $result = $cosClient->Upload(
              get_default('yun_t_shuitong'),
              $name_file.'.'.$pic_type,
              fopen('.'.$pic_str, 'rb'));
              unlink('.'.$pic_str);

          $arr['agency_file_times'] = time();
          $arrAll[] = $arr;

          $picre[] = $name_file.'.'.$pic_type;
        }
        
        \think\Db::name('agency_file')->insertAll($arrAll);
      }
          
      return $picre;
  }
